package com.yonyou.cyxdms.basedata.service.dto.vehiclemodel;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yonyou.cyx.framework.bean.dto.base.BaseDTO;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 品牌 - 新增/编辑DTO
 *
 * @author Tansj
 * @since 11:10 2019-11-14
 */
@ApiModel(value = "BrandModifyDTO", description = "品牌 - 新增/编辑DTO")
public class BrandModifyDTO extends BaseDTO {

    @ApiModelProperty(value = "品牌主键ID-编辑时必传，新增传递null")
    private Long brandId;

    private List<String> dealerCode;

    @ApiModelProperty(value = "品牌代码")
    @NotBlank(message = "品牌代码不能为空")
    private String brandCode;

    @ApiModelProperty(value = "品牌名称")
    @NotBlank(message = "品牌名称不能为空")
    private String brandName;

    @ApiModelProperty(value = "数据来源，默认店面10451001")
    private Integer dataSources;

    @ApiModelProperty(value = "是否有效")
    private Integer isValid;

    @ApiModelProperty(value = "是否整车销售，默认否10041002")
    private Integer isVehicleSalesBrand;

    @ApiModelProperty(value = "版本号-编辑时必传")
    private Integer recordVersion;

    @ApiModelProperty(value = "启用标识")
    private Integer startType;

    @ApiModelProperty(value = "启用日期")
    @JsonDeserialize(using = JsonLocalDateTimeQueryBeginDeserializer.class)
    @JsonSerialize(using = JsonLocalDateTimeQueryBeginSerializer.class)
    private LocalDateTime startDate;

    public Long getBrandId() {
        return brandId;
    }

    public void setBrandId(Long brandId) {
        this.brandId = brandId;
    }

    public List<String> getDealerCode() {
        return dealerCode;
    }

    public void setDealerCode(List<String> dealerCode) {
        this.dealerCode = dealerCode;
    }

    public String getBrandCode() {
        return brandCode;
    }

    public void setBrandCode(String brandCode) {
        this.brandCode = brandCode;
    }

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    public Integer getDataSources() {
        return dataSources;
    }

    public void setDataSources(Integer dataSources) {
        this.dataSources = dataSources;
    }

    public Integer getIsValid() {
        return isValid;
    }

    public void setIsValid(Integer isValid) {
        this.isValid = isValid;
    }

    public Integer getIsVehicleSalesBrand() {
        return isVehicleSalesBrand;
    }

    public void setIsVehicleSalesBrand(Integer isVehicleSalesBrand) {
        this.isVehicleSalesBrand = isVehicleSalesBrand;
    }

    public Integer getRecordVersion() {
        return recordVersion;
    }

    public void setRecordVersion(Integer recordVersion) {
        this.recordVersion = recordVersion;
    }

    public Integer getStartType() {
        return startType;
    }

    public void setStartType(Integer startType) {
        this.startType = startType;
    }

    public LocalDateTime getStartDate() {
        return startDate;
    }

    public void setStartDate(LocalDateTime startDate) {
        this.startDate = startDate;
    }

    @Override
    public String toString() {
        return "BrandModifyDTO{" +
                "brandId=" + brandId +
                ", dealerCode=" + dealerCode +
                ", brandCode='" + brandCode + '\'' +
                ", brandName='" + brandName + '\'' +
                ", dataSources=" + dataSources +
                ", isValid=" + isValid +
                ", isVehicleSalesBrand=" + isVehicleSalesBrand +
                ", recordVersion=" + recordVersion +
                ", startType=" + startType +
                ", startDate=" + startDate +
                '}';
    }
}
